Computing devices (or systems) use mass storage devices to store data. Different storage options are available for computing devices to store data and retrieve data, for example, direct-attached storage (DAS), network attached storage (NAS), and storage area networks (SANs). A DAS system typically includes a plurality of storage drives/devices that are directly attached to a computing device (for example, a server) Common protocols used for DAS storage devices are SCSI (Small Computer Systems Interface), ATA (AT attachment), SATA (Serial ATA), SAS (Serial Attached SCSI), NVMe (Non-Volatile memory express or the “Non-Volatile Memory Host Controller Interface” Specification), and others.
In conventional target systems, for processing input/output requests, a network packet is received by a network interface card (NIC) of a target and then delivered to a central processing unit (CPU) of the target system for processing. The CPU processes the packet, accesses the storage device and then sends a response to an initiator via the NIC. The operating rate of network and storage devices, continue to increase at a much faster rate than the rate at which CPUs are increasing their performance. Horizontally scaling server CPU operating rates is costly and can consume a lot of power. For example, to access a FLASH based storage over a 100 GbE at line speeds, one will need a very expensive and “high end server.” Continuous efforts are being made to improve storage access.